es:ES, ds:x:Id fp Type, T:Type, i:Id, f:(State(ds)T).
(x, y:T. Dec(x = y))
@i discrete ds e'@i.
(e<e'. f((discrete state when e)) = f((discrete state when e')))
(e:E
(((e <loc e')
(c (((f((discrete state when e)) = f((discrete state after e))))
(c & (e'':E.
(c & ((e <loc e'')
(c & (e''loc e' (c & ( (f((discrete state when e'')) = f((discrete state when e')) T)))))